import { ArgumentsHost, ExceptionFilter, Catch, HttpException } from "@nestjs/common";
import { Request, Response } from "express";

@Catch(HttpException)
export class HttpFilter implements ExceptionFilter{
    catch(exception: HttpException, host: ArgumentsHost) {
        const ctx = host.switchToHttp();
        const request = ctx.getRequest<Request>();
        const response = ctx.getResponse<Response>();
        
        const status = exception.getStatus();
        
        response.status(status).json({
            data: exception.message,
            time: new Date().getTime(),
            success: false,
            path: request.url,
            code: status
        });
    }
}